package com.ztorn.fiscale.mapper;

import java.util.List;
import com.ztorn.fiscale.domain.FiscaleTaxInvoiceItem;

/**
 * 税务发票明细Mapper接口
 * 
 * @author ztorn
 * @date 2025-01-19
 */
public interface FiscaleTaxInvoiceItemMapper 
{
    /**
     * 查询税务发票明细
     * 
     * @param itemId 税务发票明细主键
     * @return 税务发票明细
     */
    public FiscaleTaxInvoiceItem selectFiscaleTaxInvoiceItemById(Long itemId);

    /**
     * 查询税务发票明细列表
     * 
     * @param fiscaleTaxInvoiceItem 税务发票明细
     * @return 税务发票明细集合
     */
    public List<FiscaleTaxInvoiceItem> selectFiscaleTaxInvoiceItemList(FiscaleTaxInvoiceItem fiscaleTaxInvoiceItem);

    /**
     * 新增税务发票明细
     * 
     * @param fiscaleTaxInvoiceItem 税务发票明细
     * @return 结果
     */
    public int insertFiscaleTaxInvoiceItem(FiscaleTaxInvoiceItem fiscaleTaxInvoiceItem);

    /**
     * 修改税务发票明细
     * 
     * @param fiscaleTaxInvoiceItem 税务发票明细
     * @return 结果
     */
    public int updateFiscaleTaxInvoiceItem(FiscaleTaxInvoiceItem fiscaleTaxInvoiceItem);

    /**
     * 删除税务发票明细
     * 
     * @param itemId 税务发票明细主键
     * @return 结果
     */
    public int deleteFiscaleTaxInvoiceItemById(Long itemId);

    /**
     * 批量删除税务发票明细
     * 
     * @param itemIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFiscaleTaxInvoiceItemByIds(Long[] itemIds);
    
    /**
     * 批量新增税务发票明细
     * 
     * @param fiscaleTaxInvoiceItemList 税务发票明细列表
     * @return 结果
     */
    public int insertFiscaleTaxInvoiceItems(List<FiscaleTaxInvoiceItem> fiscaleTaxInvoiceItemList);
    
    /**
     * 通过发票ID删除税务发票明细信息
     * 
     * @param invoiceId 发票ID
     * @return 结果
     */
    public int deleteFiscaleTaxInvoiceItemByInvoiceId(Long invoiceId);
    
    /**
     * 根据发票ID查询税务发票明细列表
     * 
     * @param invoiceId 发票ID
     * @return 税务发票明细集合
     */
    public List<FiscaleTaxInvoiceItem> selectFiscaleTaxInvoiceItemByInvoiceId(Long invoiceId);
}